package com.koron.css2.contractmanage.service;

import com.koron.css2.contractmanage.vo.UserInfoVO;
import net.qiyuesuo.v3sdk.model.common.DetailContract;
import net.qiyuesuo.v3sdk.utils.SdkResponse;

/**
 * 电子合同相关接口
 */
public interface EcContratService {

    /**
     * 合同创建接口
     * @param userInfoVO
     * @param ecPeCategoryId
     * @param ecCoCategoryId
     * @param ecCompanyName
     * @return
     * @throws Exception
     */
    SdkResponse<String> ecContractCreat(UserInfoVO userInfoVO, String ecPeCategoryId,

                                                String ecCoCategoryId, String ecCompanyName) throws Exception;

    /**
     * 合同附件下载接口
     * @param fileId
     * @return
     * @throws Exception
     */
    byte[] ecContractDownLoad(Long fileId) throws Exception;

    /**
     * 合同撤回
     * @param contractId
     * @param userInfoVO
     * @return
     * @throws Exception
     */
    SdkResponse ecContractRecalled(Long contractId, UserInfoVO userInfoVO) throws Exception;

    /**
     * 合同催签
     * @param contractId
     * @return
     * @throws Exception
     */
    SdkResponse ecContractNotify(Long contractId) throws Exception;

    /**
     * 合同作废
     * @param contractId
     * @return
     * @throws Exception
     */
    SdkResponse ecContractCancel(Long contractId) throws Exception;

    /**
     * 获取合同详情
     * @param contractId
     * @return
     * @throws Exception
     */
    SdkResponse<DetailContract> getEcContractDetail(Long contractId) throws Exception;
}
